1. Field of the Invention
The present invention relates to electronic systems employing DVD readers. More particularly, the present invention relates to a method and apparatus for presenting DVD media read error data.
2. The Background Art
Modem electronic systems such as video playback machines and computers often employ Compact Disc Read-Only Memory (CD-ROM) or DVD for storing large amounts of data such as video or audio data. DVDs are a type of storage media utilized for video and audio data as well as large software systems. Like CD-ROM media, a DVD media is read using a player or reader designed for that purpose. Information is stored on DVD media in digital form, resulting in data that is either a one (1) or a zero (0). Those of ordinary skill in the art are readily aware that DVD media contain areas of high reflectivity (land) and low reflectivity (pit). When read with a laser, a transition from land to pit or from pit to land represents a xe2x80x9c1xe2x80x9d, and all other areas represent a xe2x80x9c0xe2x80x9d.
During the process of writing data to a DVD media, Reed-Solomon error correction codes and other error mechanisms known to those of ordinary skill in the art are also written. When the data are later read back, these correction codes may be compared with actual correction codes which are computed from the actual data read from the DVD to determine whether one or more errors have occurred. Depending on the differences between the correction codes read from the DVD media and the correction codes computed from the actual data, errors in the actual data may be correctable.
In this disclosure, the term xe2x80x9ccorrection codexe2x80x9d shall refer to Reed-Solomon correction codes, checksums in general, and any other data structure used by those of ordinary skill in the art to determine if data has been accurately read from a storage media.
Those of ordinary skill in the art are well aware of methods and apparatus for determining whether the data is correctable, and for correcting the actual data. However, the prior art apparatus and methods suffer from unnecessary delays in allowing later processes to utilize information about errors, whether those errors were correctable, and how many errors were corrected.
FIG. 1 is a block diagram of a typical prior art DVD signal processing system, including a processing system 10 comprises a signal processor 12 which receives data 14 from a DVD media. Processor 12 examines the input data block and determines whether there are errors. If so, processor 12 corrects those errors that are correctable, and then stores the corrected data in memory 16.
FIG. 2 illustrates a typical arrangement of a typical data block after being processed by a DVD signal processor. A typical data block 14 (from FIG. 1) includes 208 rows (e.g., rows 20, 22) of 182 bytes each. Reading the block from left to right and from top to bottom in sections, each section includes 12 rows of data bytes, with each row including 172 actual data bytes plus 10 bytes of correction data information, the correction data relating to the preceding 172 actual data bytes. The correction data at the end of each row are known to those of ordinary skill in the art as inner code parity (PI) data. Every thirteenth row in a section includes error data 22 that are commonly called outer code parity (PO) data. Although the correction data are interleaved with actual data, PO data are processed as columns. A data block includes 172 user data bytes and 10 PI error data bytes per row, and includes 182 columns, each column having 192 user data bytes and 16 error data bytes. Additionally, every thirteenth row of data, beginning with the first row, includes a three-byte sector number that identifies the sector number of the data stored therein. Such a sector number is stored in rows 1, 14, 27, 40, etc., as shown in FIG. 2. There are 16 sector numbers within each ECC block. Therefore, a block number is specified by the most significant 20 bits of a 24-bit sector number (the sector number divided by 16), and may be represented as five hexadecimal digits.
The prior art apparatus is useful for its intended purpose of handling and managing PI and PO data and the error rate data produced by signal processor 12. However, there are significant delays which are inherent in the prior art apparatus due to the necessity of storing the data in memory prior to operating on the corrected data. Further, there is no defined method for providing the error rate data using an efficient data structure for later processing.
It would therefore be beneficial to provide an apparatus for handling and managing error rate information which allows devices needing error data to receive that data in real time.
It would also be beneficial to provide an apparatus which provides DVD error data to devices in a well-defined structure which can be processed efficiently and effectively.
It would also be beneficial to provide an apparatus which provides error information with the corresponding block number so that the data errors and block location may be correlated.
A method and apparatus for processing data read from a DVD medium is described. The apparatus includes a DVD media reader for reading data and error information stored on a DVD media, an error processor for determining the number of errors (if correctable) in the read data, and a display means for displaying the number of correctable errors. The method includes the steps of reading actual data from a DVD media, computing a first correction code for the actual data, reading a second correction code from the DVD media, and comparing the first and second correction codes to determine whether the actual data need to be corrected. The method further includes the steps of determining whether the maximum number of errors in the actual data exceeds the number of errors that can be corrected, correcting the actual data if possible, counting and displaying the number of errors that are corrected, and indicating that the data are uncorrectable if the number of errors exceeds the maximum number (10 errors for a row error, 16 errors for a column error).